一般來說,我們在使用 CLI 時,都會使用 --help
或 -h
來查看該指令的說明,例如:
git --help
很多 Discord bot 也會提供 help
指令,來告訴使用者該 bot 的指令有哪些可以用。
如果是使用 slash command 的話,Discord 自動就會提供指令的說明,但如果是使用 message prefix 或是希望有更多的說明,就需要自己寫了。
目前的模組寫法會遇到一個問題,就是每個模組只有自己才知道自己的指令有哪些,所以如果要寫 help
指令,就需要在每個模組都寫一次。
而且可能會變成使用者輸入完
!help
後,會得到一堆不同模組的回覆,這樣的使用者體驗顯然不太好。
我在想,有沒有辦法讓每個模組都可以知道其他模組的指令呢?
例如我們在每個模組中增加 commands
的指令集,這個指令集也許可以直接使用 discord.js 的 CommandBuilder
,那我們也就可以順便用它來設定 slash command 的說明了。
export class Translate extends BaseModule implements Module {
name = "translate";
commands = [
new SlashCommandBuilder()
.setName("translate")
.setDescription("翻譯")
.addStringOption((option) =>
option
.setName("text")
.setDescription("要翻譯的文字")
.setRequired(true)
)
.addStringOption((option) =>
option
.setName("from")
.setDescription("原始語言")
.setRequired(false)
)
.addStringOption((option) =>
option
.setName("to")
.setDescription("目標語言")
.setRequired(false)
),
];
}
以 2022/10/01 20:00 ~ 2022/10/02 20:00 文章觀看數增加值排名
誤差: 1 小時
+1559
[Day 1] 工具從來不是問題,知識才是力量 ! Scrum 該懂的二三事 !
+563
Day11 - 靜態網站與動態網站
+547
Day12 - HTTP & HTTPS
+536
Day01 - 為什麼要裝 Node.js?
+535
Day13 - HTTP Request & Response
+527
Day17 - Vue(1)
+522
Day08 - 把你的程式碼丟到 Github 給全世界看!
+522
Day15 - AJAX(1) - XMLHttpRequest
+519
Day09 - 你的成果上線啦!(Github Pages & Vercel)
+519
Day10 - 只要把程式碼丟上去就好惹,其他都交給 Github Actions